<?php
/**
 * 抽象控制类，所有的控制器都要继承这个类
 * @author 355108<leicc@sina.com>
 */
namespace classlib\core;
use classlib\core\view\view_abstract;
abstract class controller {
	/**
	 * 控制器调用了不存在的方法返回404
	 * @return void
	 */
	public function __call($name, $arguments) {
		header('HTTP/1.1 404 Not Found');  
		header('Status: 404 Not Found');  
		exit;  
	}
	
	/**
	 * 验证一个用户是否登录
	 * @param view_abstract $view
	 * @param string $akey
	 * @return array $user
	 */
	public function __check($view=null) {
		$acl  = \classlib\acl::inst('ACLweb');
		if (!$acl->islogin()) {
			if (is_null($view)) {
				redirect('/home.html');
			} else if ($view instanceof view_abstract) {
				$view->assign_error(80016, self::errmsg('80016'));
			} else {
				ob_end_clean();
				exit;
			}
		}
		return $acl->user;
	}
	
	/**
	 * 返回错误资料信息
	 * @param unknown $code
	 */
	protected static function errmsg($code, $segs='action') {
		$lang = lang::inst('web');
		$msg  = $lang->txt($segs, $code);
		return $msg;
	}
}